<?php
class SEGErros {
    public function __construct(){
	}
	
	public function msg($texto = '',$tipo = ''){		
		if ($tipo == 'J') {
			//string json contendo os dados de um funcionário. 
			//esta string não está bem-formada, pois o valor M não está entre aspas 
			$texto = json_encode($texto); 
			
			//faz o parsing na string, gerando um objeto PHP 
			$obj = json_decode($texto); 
			
			//testa se houve erro no parsing! Vai acusar erro de string mal-formada (JSON_ERROR_SYNTAX) 
			if (json_last_error() == 0) { 
				$msg = array('msg' => array('texto'=>'Sucesso - Nao houve erro! O parsing foi perfeito','tipo'=>0)); 
				
				return $texto;
			}	else {
				switch (json_last_error()) { 
					case JSON_ERROR_DEPTH: 
						$msg = array('msg' => array('texto'=>'Erro - profundidade maxima excedida','tipo'=>1));
						break; 
					case JSON_ERROR_STATE_MISMATCH: 
						$msg = array('msg' => array('texto'=>'Erro - state mismatch','tipo'=>2));
						break; 
					case JSON_ERROR_CTRL_CHAR: 
						$msg = array('msg' => array('texto'=>'Erro - Caracter de controle encontrado','tipo'=>3)); 
						break; 
					case JSON_ERROR_SYNTAX: 
						$msg = array('msg' => array('texto'=>'Erro - Erro de sintaxe! String JSON mal-formada!','tipo'=>4));
						break; 
					case JSON_ERROR_UTF8: 
						$msg = array('msg' => array('texto'=>'Erro - Erro na codificação UTF-8','tipo'=>5));
						break; 
					default: 
						$msg = array('msg' => array('texto'=>'Erro – Erro desconhecido','tipo'=>6));
						break; 
				} 
			}
			
			return json_encode($msg);
		} else {
			$msg = array('msg' => array('texto'=> $texto,'tipo'=>7));
			return json_encode($msg);
		}		
    }
}
?>